﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PowerTest.GiaoVien
{
    public partial class frmRaDeThiNgauNhien : Form
    {
        public frmRaDeThiNgauNhien()
        {
            InitializeComponent();
        }

        private void frmRaDeThi_Load(object sender, EventArgs e)
        {
            try
            {
                // TODO: This line of code loads data into the 'powerTestDataSet.tblMucDo' table. You can move, or remove it, as needed.
                this.tblMucDoTableAdapter.Fill(this.powerTestDataSet.tblMucDo);


                // TODO: This line of code loads data into the 'powerTestDataSet.tblMonHoc' table. You can move, or remove it, as needed.
                this.tblMonHocTableAdapter.Fill(this.powerTestDataSet.tblMonHoc);

                lblTenGV.Text = Func.tenTruyCap;
            }
            catch { }
        }

        private void btOk_Click(object sender, EventArgs e)
        {
            try
            {
                // TODO: This line of code loads data into the 'powerTestDataSet.viewCauHoiMucDo' table. You can move, or remove it, as needed.
                this.viewCauHoiMucDoTableAdapter.FillByMaMon(this.powerTestDataSet.viewCauHoiMucDo, cbMon.SelectedValue.ToString());
                gbMon.Enabled = false;
                //btQuayLai.Enabled = true;

                gbSoCau.Enabled = true;
                txtSLgCauHoi.Focus();
            }
            catch { }
        }

        private void dgvCauHoi_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvCauHoi.CurrentRow == null)
            {
                return;
            }
            try
            {
                string maCauHoi = dgvCauHoi.CurrentRow.Cells["maCauHoiDataGridViewTextBoxColumn"].Value.ToString();
                tblChiTietDapAnTableAdapter.FillByByMCH(powerTestDataSet.tblChiTietDapAn, maCauHoi);
            }
            catch
            {
            }
        }

        private void cbMon_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                // TODO: This line of code loads data into the 'powerTestDataSet.tblCauHoi' table. You can move, or remove it, as needed.
                this.viewCauHoiMucDoTableAdapter.FillByMaMon(this.powerTestDataSet.viewCauHoiMucDo, cbMon.SelectedValue.ToString());
            }
            catch { }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btQuayLai_Click(object sender, EventArgs e)
        {
            gbTuyChinhDe.Enabled = true;
            btQuayLai.Enabled = false;
            btXacNhan.Enabled = false;
        }

        private void txtSLgCauHoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            Func.NhapSo(sender, e);
        }
        private void btSLgCauHoi_Click(object sender, EventArgs e)
        {
            if (txtSLgCauHoi.Text == "")
            {
                lblThongBao.Text = "Nhập vào số lượng câu hỏi!";
                lblThongBao.ForeColor = Color.Red;
                txtSLgCauHoi.Focus();
            }
            else
            {
                int dem = int.Parse(viewCauHoiMucDoTableAdapter.QueryDemSoCauHoi(cbMon.SelectedValue.ToString()).Value.ToString());
                if (int.Parse(txtSLgCauHoi.Text) > dem)
                {
                    lblThongBao.Text = "Số lượng câu hỏi lựa chọn vượt quá số câu hỏi có trong thư viện đề!";
                    lblThongBao.ForeColor = Color.Red;
                    txtSLgCauHoi.Focus();
                }
                else
                {
                    lblThongBao.Text = "Chào mừng đến với ứng dụng ra đề thi ngẫu nhiên";
                    lblThongBao.ForeColor = Color.Blue;
                    gbSoCau.Enabled = false;
                    gbChonMucDo.Enabled = true;

                }
            }
        }

        private void txtSLgCauHoi_Enter(object sender, EventArgs e)
        {
            txtSLgCauHoi.Text = "";
        }

        private void btXacNhanChonMucDo_Click(object sender, EventArgs e)
        {
            int dem = 0;
            foreach (DataGridViewRow row in dgvMucDo.Rows)
            {
                try
                {
                    if (row.Cells["luaChon"].Value == null || bool.Parse(row.Cells["luaChon"].Value.ToString()) == false)
                    {
                        row.Cells["soCauHoi"].Value = "0";
                    }
                    else
                    {
                        dem += int.Parse(row.Cells["soCauHoi"].Value.ToString());
                    }
                }
                catch { }
            }
            if (dem <= int.Parse(txtSLgCauHoi.Text))
            {
                lblThongBao.Text = "Nếu thiếu số câu hỏi, chương trình sẽ tự động thêm các câu hỏi dễ vào đề!";
                lblThongBao.ForeColor = Color.Red;
                dgvMucDo.Rows[0].Cells["luaChon"].Value = true;
                int de = int.Parse(dgvMucDo.Rows[0].Cells["soCauHoi"].Value.ToString());
                dgvMucDo.Rows[0].Cells["soCauHoi"].Value = int.Parse(txtSLgCauHoi.Text) - dem + de;
                gbChonMucDo.Enabled = false;
                gbTuyChinhDe.Enabled = true;
            }
            else
            {
                lblThongBao.Text = "Số lượng các mức độ đưa ra vượt quá số câu hỏi!";
                lblThongBao.ForeColor = Color.Red;
            }
        }

        private void btQuayLaiSLgCauHoi_Click(object sender, EventArgs e)
        {
            gbMon.Enabled = true;
            //            gbSoCau.Enabled = true;
            gbChonMucDo.Enabled = false;
        }

        private void btQuayLaiMucDo_Click(object sender, EventArgs e)
        {
            gbChonMucDo.Enabled = true;
            gbTuyChinhDe.Enabled = false;
        }

        private void btXacNhanTuyChinh_Click(object sender, EventArgs e)
        {
            if (txtTenDe.Text == "")
            {
                lblThongBao.Text = "Cần phải nhập vào tên đề thi!";
                lblThongBao.ForeColor = Color.Red;
                txtTenDe.Focus();
            }
            else
            {
                lblThongBao.Text = "Chào mừng đến với ứng dụng ra đề thi ngẫu nhiên";
                lblThongBao.ForeColor = Color.Blue;
                gbTuyChinhDe.Enabled = false;
                btXacNhan.Enabled = true;
                btQuayLai.Enabled = true;
            }

        }

        private void btXacNhan_Click(object sender, EventArgs e)
        {
            btXacNhan.Enabled = false;
            btQuayLai.Enabled = false;
            btXemDe.Enabled = true;

        }

        private void btTaoDe_Click(object sender, EventArgs e)
        {            
            string maDe = Func.autoDeThi();
           int time = int.Parse(mskGio.Text) * 60 + int.Parse(mskPhut.Text);
            float diem = 10/int.Parse(txtSLgCauHoi.Text);
            tblDeThiTableAdapter.Insert(maDe, Func.maTruyCap, txtTenDe.Text, int.Parse(txtSLgCauHoi.Text), DateTime.Now, time);
            foreach (DataGridViewRow row in dgvCauHoi.Rows)
            {
                try
                {
                    tblChiTietDeThiTableAdapter.Insert(maDe, row.Cells["maCauHoiDataGridViewTextBoxColumn"].Value.ToString(), diem);
                }
                catch { }
            }
            lblThongBao.Text = "Tạo đề thành công!";
            lblThongBao.ForeColor = Color.Blue;
            btXemDe.Enabled = false;
            btTaoDe.Enabled = false;
        }

        private void btXemDe_Click(object sender, EventArgs e)
        {
            int sl;
            if (chkTronCauHoi.Checked == true)
            {
                foreach (DataGridViewRow row in dgvMucDo.Rows)
                {
                    try
                    {
                        sl = int.Parse(row.Cells["soCauHoi"].Value.ToString());
                        viewCauHoiMucDoTableAdapter.FillByRandMonMDo(powerTestDataSet.viewCauHoiMucDo, sl, cbMon.SelectedValue.ToString(), row.Cells["maMucDoDataGridViewTextBoxColumn1"].Value.ToString());
                        viewCauHoiMucDoTableAdapter.ClearBeforeFill = false;
                    }
                    catch { }
                }
                viewCauHoiMucDoTableAdapter.ClearBeforeFill = true;
            }
            else
            {
                try
                {
                    viewCauHoiMucDoTableAdapter.FillByRandCauHoi(powerTestDataSet.viewCauHoiMucDo, int.Parse(txtSLgCauHoi.Text), cbMon.SelectedValue.ToString());
                }
                catch { }
            }
            btTaoDe.Enabled = true;
            gbDuLieuCauHoi.Text = "Xem trước đề thi!";
            lblThongBao.Text = "Bạn có thể xem trước đề thi ở trên!\n Ấn vào \"Xem đề\" để tạo đề khác! ";
            lblThongBao.ForeColor = Color.Red;
        }

        private void btTaoDeMoi_Click(object sender, EventArgs e)
        {
            Dispose();
            new frmRaDeThiNgauNhien().ShowDialog();
        }

    }
}